Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Наслідування

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2015
Тип роботи:
Лабораторна робота
Предмет:
Об’єктно-орієнтоване програмування

Частина тексту файла

Міністерство освіти і науки Національний університет “Львівська політехніка” Кафедра ЕОМ / Звіт з лабораторної роботи № 6 з дисципліни: “Об’єктно-орієнтоване програмування” на тему: “Наслідування” Мета лабораторної роботи Навчитись застосовувати наслідування класів в мові C++. Теоретичні відомості Наслідування (ієрархія "іs a") Наслідування – це механізм, за допомогою якого один клас може одержувати атрибути та функції іншого. Наслідування дозволяє створювати ієрархію класів. При створенні нового класу замість написання цілком нових даних-елементів і функцій-елементів програміст може вказати, що новий клас є спадкоємцем елементів попередньо визначеного базового класу. Новостворений клас буде похідним класом. Кожен похідний клас може бути кандидатом на роль базового класу для майбутніх похідних класів. При одиночному наслідуванні клас породжується одним базовим класом. При множинному наслідуванні похідний клас успадковує властивості декількох базових класів. Нижче наведена основна форма наслідування базового класу: class ім’яПохідногоКласу : [public/protected/private] ім’яБазовогоКласу { // тіло похідного класу }  За допомогою специфікатора доступу можна визначити, яким чином елементи базового класу будуть успадковуватися похідним класом. При використанні publіc у похідному класі члени базового класу мають ті ж специфікатори доступу, що й у базовому класі. Специфікатор protected означає, що в похідному класі відкриті члени базового класу стають захищеними, а інші зберігають своє вихідне значення специфікатора доступу. Нарешті, при використанні специфікатора prіvate у похідному класі всі члени базового класу стають закритими. Слід дотримуватися наступних правил успадкування методів у похідному класі: 1. Оскільки конструктори не успадковуються, похідні класи повинні мати власні конструктори. Тут можуть бути дві ситуації: якщо у конструкторі похідного класу відсутній явний виклик конструктора базового класу, автоматично викликається конструктор базового класу по замовчуванню (той, що не має параметрів). Для ієрархії декількох рівнів конструктори базових класів викликаються, починаючи з найвищого рівня. якщо конструктор базового класу потребує параметрів, він повинен бути явно викликаний в конструкторі похідного класу списком ініціалізації. ім’яКласу :: ім’яКласу (параметри) : ім’яБазовогоКласу(параметри) { // тіло конструктора }  2. Оскільки деструктор не успадковуються та програмою не визначений деструктор у похідному класі, його буде згенеровано по замовчуванню і через нього викликано деструктори усіх базових класів. У класовій ієрархії деструктори викликаються у порядку, зворотному до виклику конструкторів; спочатку деструктор поточного класу, а потім деструктор базового класу. 3. Похідний клас може перевизначати метод з одним і тим же ім'ям, що і у базовому класі, відповідно коректуючи його поведінку для себе. Аби запобігти неоднозначностям, рекомендовано перевизначати лише віртуальні методи класів. Віртуальні функції До механізму віртуальних функцій звертаються у тих випадках, коли в базовий клас необхідно помістити функцію, що повинна по-різному виконуватися у похідних класах. Віртуальний метод – це метод класу, що може бути перевизначений у класах-спадкоємцях так, що конкретна реалізація буде визначатися під час виконання (“динамічне зв’язування”). Таким чином, програмістові необов'язково знати точний тип об'єкта для роботи з ним через віртуальні методи: досить лише знати, що об'єкт належить класові або спадкоємцеві класу, у якому метод оголошений. Віртуальний метод не обов'язково повинен перевизначатися в похідному класі. У такому випадку для цього класу використовується версія, визначена в базовому класі. Абстрактні базові класи і конкретні класи Коли ми думаємо про клас як про тип, ми припускаємо, що будуть створюватися об'єкти цього типу. Однак, існують випадки, в яких корисно визначати класи, для яких програміст не має наміру створювати об'єкти. Такі класи називаються абстрактними к...
Антиботан аватар за замовчуванням

27.03.2016 19:03

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини